package com.example.springboot.service;
// 导入所需的类和工具包
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.springboot.entity.DormManager;

// 定义宿管服务接口，继承 IService<DormManager> 以获得 MyBatis-Plus 内置的基础服务方法
public interface DormManagerService extends IService<DormManager> {

    /**
     * 宿管登录方法
     * @param username 登录用户名（通常对应数据库中的 username 字段）
     * @param password 登录密码（通常对应数据库中的 password 字段）
     * @return 登录成功返回对应的 DormManager 实体对象，失败返回 null
     */
    DormManager dormManagerLogin(String username, String password);

    /**
     * 新增宿管方法
     * @param dormManager 待新增的宿管实体对象，包含宿管的各项信息
     * @return 数据库操作影响的行数（成功返回 1，失败返回 0）
     */
    int addNewDormManager(DormManager dormManager);

    /**
     * 分页查询宿管方法
     * @param pageNum 当前页码（从 1 开始）
     * @param pageSize 每页显示的记录数
     * @param search 搜索关键词（用于模糊查询，如按姓名、工号等字段搜索）
     * @return 分页结果对象，包含当前页数据和总记录数等信息
     */
    Page find(Integer pageNum, Integer pageSize, String search);

    /**
     * 更新宿管信息方法
     * @param dormManager 包含更新后数据的宿管实体对象，需包含主键 ID
     * @return 数据库操作影响的行数（成功返回 1，失败返回 0）
     */
    int updateNewDormManager(DormManager dormManager);

    /**
     * 删除宿管方法（根据用户名删除，假设用户名为主键）
     * @param username 待删除宿管的用户名（主键字段）
     * @return 数据库操作影响的行数（成功返回 1，失败返回 0）
     */
    int deleteDormManager(String username);
}
